搜索 K
Appearance
博客正在加载中...
Appearance
本文讲讲一个 Servlet 从开始到结束的过程。
主要分为 3 个:
我们新建一个 Servlet 来演示:
package com.peterjxl;
import javax.servlet.*;
import java.io.IOException;
public class ServletDemo2Circle implements Servlet {
//初始化方法 在 Servlet 被创建时,执行。只会执行一次
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("init.....");
}
//获取 ServletConfig 对象 ServletConfig:Servlet 的配置对象
@Override
public ServletConfig getServletConfig() {
return null;
}
//提供服务的方法 每一次 Servlet 被访问时执行
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("Hello Servlet!");
}
//获取 Servlet 的一些信息,版本,作者等等。
@Override
public String getServletInfo() {
return null;
}
//销毁方法 在服务器正常关闭时,执行,执行一次。
@Override
public void destroy() {
System.out.println("destroy.....");
}
} 然后在 web.xml 里增加如下配置:
<servlet>
<servlet-name>demo2</servlet-name>
<servlet-class>com.peterjxl.ServletDemo2Circle</servlet-class>
</servlet>
<!--配置Servlet -->
<servlet-mapping>
<servlet-name>demo2</servlet-name> <!-- 访问路径时,使用哪个Servlet-->
<url-pattern>/demo2</url-pattern> <!-- 访问哪个路径-->
</servlet-mapping>重启 Tomcat,访问/demo2,可以看到控制台输出如下:
init.....
Hello Servlet! 然后关闭 Tomcat:
destroy..... 在第一次访问 http://localhost: 8080/hello/demo2 时,会创建 servlet 对象,执行 init 和 service 方法。
多次访问,则执行多次 service 方法,并不会执行多次 init 方法,init 在 Servlet 的生命周期中只执行一次。
Servlet 什么时候被创建?默认情况下,第一次被访问时,Servlet 被创建 但我们可以配置执行 Servlet 的创建时机。在 web.xml 文件中的 <servlet> 标签下配置 <load-on-startup> 标签:
<servlet>
<servlet-name>demo2</servlet-name>
<servlet-class>com.peterjxl.ServletDemo2Circle</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet><load-on-startup> 标签里的值是一个整数,其值的定义如下:
有时候我们需要在 Web 服务一启动的时候,就执行一些初始化的方法(例如创建数据库连接池等),此时可以定义一个初始化的 Servlet,并在其 init 方法里编写初始化代码,这样其他 Servlet 就可以使用初始化好的资源。
其他注意点: